import axios from "axios";
import { ElMessage } from 'element-plus'
import { useLoginStore } from '../../stores/index.js'
import { getCurrentInstance } from 'vue'


const getBaseURLByRole = (role) => {
  const roleMap = {
    'platform': '/platformLogin',
    'school': '/schoolLogin',
    'student': '/studentLogin',
    'user': '/userLogin'
  };
  return roleMap[role] || '/platformLogin'; // 默认返回平台登录
};

/**
 * 创建axios实例用于HTTP请求
 * 配置基础URL和请求超时时间
 */
const service = axios.create({
  baseURL: '',  // 修改为实际API前缀
  timeout: 5000
})

/**
 * 请求拦截器
 * 在每个请求发送前添加认证token到请求头
 * @param {Object} config - axios请求配置对象
 * @returns {Object} 修改后的请求配置对象
 */
service.interceptors.request.use(
  (config) => {
      
    config.baseURL = getBaseURLByRole(config.params.loginType)
    return config
  },
  (err) => {
    ElMessage.error('请求发送失败')
    return Promise.reject(err)
  }
)

/**
 * 响应拦截器
 * 处理API响应数据和错误情况
 * @param {Object} response - axios响应对象
 * @returns {Object} 响应数据
 */
service.interceptors.response.use(
  (response) => {
      console.log("响应拦截"+response);
    return response.data
  },
  (err) => {
    return Promise.reject(err)
  }
)

export default service
